package com.artron.mediaartron.wxapi;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

import com.artron.baselib.utils.ToastUtil;
import com.artron.mediaartron.data.callback.PayCallback;
import com.artron.mediaartron.data.event.FinishEvent;
import com.artron.mediaartron.data.net.NetConstant;
import com.artron.mediaartron.data.production.SuitableSizeHelper;
import com.artron.mediaartron.ui.activity.GeneralActivity;
import com.tencent.mm.opensdk.constants.ConstantsAPI;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;

import org.greenrobot.eventbus.EventBus;


public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {

    private static final String TAG = "WXPayEntryActivity";

    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        api = WXAPIFactory.createWXAPI(this, NetConstant.WX_APPID);
        api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq req) {
    }

    @Override
    public void onResp(BaseResp resp) {
        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            String orderId = SuitableSizeHelper.getHelper().getOrderId();
            boolean isNotStart = SuitableSizeHelper.getHelper().isNotStart();
            boolean isStartPayDetail = SuitableSizeHelper.getHelper().isStartPayDetail();
            if (resp.errCode == 0) {
                PayCallback.startFinishPage(this, orderId, true, isNotStart, true);

                if (!isStartPayDetail) {
                    EventBus.getDefault().post(new FinishEvent(true));
                }
            } else {
                if (isStartPayDetail) {
                    PayCallback.startFinishPage(this, orderId, false, isNotStart, true);
                    if (!isNotStart) {
                        EventBus.getDefault().post(new FinishEvent(true));
                    }
                } else {
                    ToastUtil.show("支付失败");
                    finish();
                }
            }
        }
    }
}